Spring5学习之JDBC篇

您所在的位置:网站首页 jdbc queryforobject Spring5学习之JDBC篇

Spring5学习之JDBC篇

#Spring5学习之JDBC篇| 来源: 网络整理| 查看: 265

JdbcTemplate:Spring框架对JDBC进行了封装,使用JdbcTemplate方便实现对数据库操作。

配置JDBC依赖包得导入:spring相关包,druid,mysql-connnector-java,net.sf.cglib,org.aopalliance,org.aspectj.weaver

2. 在spring配置文件中配置数据库连接池(配置德鲁伊连接池)

3. 配置JdbcTemplate对象,注入DataSource

4. 创建service类,创建dao类,在dao类注入jdbcTemplate对象

配置文件 service类@Service public class BookService { //注入dao @Autowired private BookDao bookDao; }dao类@Repository public class Book implements BookDao{ //注入JdbcTemplate @Autowired private JdbcTemplate jdbcTemplate; }JdbcTemplate数据库操作-添加操作对应数据库的表创建实体类public class User { private String userId; private String username; private String ustatus; public String getUserId() { return userId; } public String getUsername() { return username; } public String getUstatus() { return ustatus; } public void setUserId(String userId) { this.userId = userId; } public void setUsername(String username) { this.username = username; } public void setUstatus(String ustatus) { this.ustatus = ustatus; } }

2. 编写service类和dao类

在dao进行数据库添加操作:创建JdbcTemplate对象,调用JdbcTemplate对象的update方法添加操作update(String sql,Object... args):参数1是sql语句,参数2是可变参数,设置sql语句占位符(?)的值public class BookDaoImpl implements BookDao{ //注入JdbcTemplate @Autowired private JdbcTemplate jdbcTemplate; //添加方法 @Override public void add(Book book) { //创建sql语句 String sql = "insert into tb_book values(?,?,?)"; //调用方法实现 Object[] args = {book.getUserId(), book.getUsername(), book.getUstatus()}; int update = jdbcTemplate.update(sql,args); System.out.println(update); } }测试类public class JdbcTestBook { @Test public void testJdbctemplate(){ ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml"); BookService bookService = context.getBean("bookService", BookService.class); Book book = new Book(); book.setUserId("1"); book.setUsername("张三"); book.setUstatus("open"); bookService.addBook(book); } }

测试结果中有个警告:表明数据库驱动com.mysql.jdbc.Driver已经被弃用了,现在用的是com.mysql.cj.jdbc.Driver,所以把jdbc.properties中的prop.driverClass改成相应的就好了。

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.JdbcTemplate数据库操作-修改删除dao类@Repository public class BookDaoImpl implements BookDao{ //注入JdbcTemplate @Autowired private JdbcTemplate jdbcTemplate; //添加方法 @Override public void add(Book book) { //创建sql语句 String sql = "insert into tb_book values(?,?,?)"; //调用方法实现 Object[] args = {book.getUserId(), book.getUsername(), book.getUstatus()}; int update = jdbcTemplate.update(sql,args); System.out.println(update); } //修改方法 @Override public void update(Book book) { //创建sql语句 String sql = "update tb_book set username=?,ustatus=? where user_id=?"; //调用方法实现 Object[] args = {book.getUsername(), book.getUstatus(),book.getUserId()}; int update = jdbcTemplate.update(sql,args); System.out.println(update); } //删除方法 @Override public void delete(String id) { //创建sql语句 String sql = "delete from tb_book where user_id=?"; //调用方法实现 int update = jdbcTemplate.update(sql,id); System.out.println(update); } }

其他和添加基本一样,参考添加。

测试类

public class JdbcTestBook { @Test public void testJdbctemplate(){ ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml"); BookService bookService = context.getBean("bookService", BookService.class); //修改方法 Book book = new Book(); book.setUserId("2"); book.setUsername("李一"); book.setUstatus("close"); bookService.updateBook(book); //删除方法 bookService.deleteBook("2"); } }

JdbcTemplate数据库操作-查询操作查询结果返回某个值queryForObject(String sql, Class requiredType):参数1是sql语句,参数2是返回类型Class,也可以后面追加占位符的值 //查询表记录数 @Override public int selectCount(String username) { //创建sql语句 String sql = "select count(1) from tb_book where username=?"; //调用方法实现 Integer count = jdbcTemplate.queryForObject(sql,Integer.class,username); return count; }

测试类

public class JdbcTestBook { @Test public void testJdbctemplate(){ ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml"); BookService bookService = context.getBean("bookService", BookService.class); //查询返回某个值 int count = bookService.findCount("张三"); System.out.println(count); } }查询结果返回对象queryForObject(String sql, RowMapper rowMapper, Object... args):参数1是sql语句,参数2是接口,针对返回不同类型数据,使用这个接口里面实现类完成数据封装。参数3是sql语句占位符的值 //查询返回对象 @Override public Book findBookInfo(String id) { //创建sql语句 String sql = "select * from tb_book where user_id=?"; //调用方法实现 Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper(Book.class), id); return book; }

测试类

public class JdbcTestBook { @Test public void testJdbctemplate(){ ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml"); BookService bookService = context.getBean("bookService", BookService.class); //查询返回对象 Book book=bookService.findOne("1"); System.out.println(book); } }查询结果返回集合query(String sql, RowMapper rowMapper, Object... args):参数1是sql语句,参数2是接口,针对返回不同类型数据,使用这个接口里面实现类完成数据封装。参数3是sql语句占位符的值 //查询返回集合 @Override public List findAllBookInfo() { //创建sql语句 String sql = "select * from tb_book"; //调用方法实现 List bookList = jdbcTemplate.query(sql, new BeanPropertyRowMapper(Book.class)); return bookList; }

测试类

public class JdbcTestBook { @Test public void testJdbctemplate(){ ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml"); BookService bookService = context.getBean("bookService", BookService.class); //查询返回集合 List all = bookService.findAll(); System.out.println(all); } }JdbcTemplate数据库操作-批量操作批量添加操作batchUpdate(String sql, List batchArgs):参数1是sql语句,参数2是List集合,添加多条记录数据 //批量添加 @Override public void batchAddBook(List batchArgs) { //创建sql语句 String sql = "insert into tb_book values(?,?,?)"; //调用方法实现 int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs); System.out.println(Arrays.toString(ints)); }

测试类

public class JdbcTestBook { @Test public void testJdbctemplate(){ ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml"); BookService bookService = context.getBean("bookService", BookService.class); //批量添加 List batchArgs = new ArrayList(); Object[] o1 = {"6","java","a"}; Object[] o2 = {"4","c","b"}; Object[] o3 = {"9","c++","c"}; batchArgs.add(o1); batchArgs.add(o2); batchArgs.add(o3); bookService.batchAdd(batchArgs); } }批量修改操作batchUpdate(String sql, List batchArgs):参数1是sql语句,参数2是List集合,修改多条记录数据 //批量修改 @Override public void batchUpdateBook(List batchArgs) { //创建sql语句 String sql = "update tb_book set username=?,ustatus=? where user_id=?"; //调用方法实现 int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs); System.out.println(Arrays.toString(ints)); }测试类public class JdbcTestBook { @Test public void testJdbctemplate(){ ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml"); BookService bookService = context.getBean("bookService", BookService.class); //批量修改 List batchArgs = new ArrayList(); Object[] o1 = {"java11","a1","6"}; Object[] o2 = {"c22","b2","4"}; Object[] o3 = {"c++33","c3","9"}; batchArgs.add(o1); batchArgs.add(o2); batchArgs.add(o3); bookService.batchUpdate(batchArgs); } } 批量删除操作batchUpdate(String sql, List batchArgs):参数1是sql语句,参数2是List集合,删除多条记录数据 //批量删除 @Override public void batchDeleteBook(List batchArgs) { //创建sql语句 String sql = "delete from tb_book where user_id=?"; //调用方法实现 int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs); System.out.println(Arrays.toString(ints)); }

测试类

public class JdbcTestBook { @Test public void testJdbctemplate(){ ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml"); BookService bookService = context.getBean("bookService", BookService.class); //批量删除 List batchArgs = new ArrayList(); Object[] o1 = {"6"}; Object[] o2 = {"4"}; Object[] o3 = {"9"}; batchArgs.add(o1); batchArgs.add(o2); batchArgs.add(o3); bookService.batchDelete(batchArgs); } }

以上就是JdbcTemplate的基本内容了,加油!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3